package com.itheima.gui;


import com.itheima.gui_demo.DateChooser;

import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/*
 *      考勤日期的查询
 *          将获取到的时间字符串解析成时间
 *
 * */
//注意类名
public class AttendanceQuery {
    //程序的主入口,main方法
    public static void main(String[] args) {
        //创建窗体对象
        JFrame jf = new JFrame();
        //设置大小(单位是px像素)
        jf.setSize(400, 400);
        //基本设置
        //1.窗体标题
        jf.setTitle("考勤查询");
        //2.居中显示
        jf.setLocationRelativeTo(null);
        //3.窗体关闭停止程序
        jf.setDefaultCloseOperation(3);
        //4.设置窗体置顶:为了别的窗体覆盖它
        jf.setAlwaysOnTop(true);
        //取消默认布局
        jf.setLayout(null);

        //创建日期选择对象,指定日期字符串格式
        DateChooser dateChooser1 = DateChooser.getInstance("yyyy/mm/dd");
        DateChooser dateChooser2 = DateChooser.getInstance("yyyy/mm/dd");

        //考勤日期开始的文本标签
        JLabel dataJLabel = new JLabel("考勤日期");
        //设置位置和大小
        dataJLabel.setBounds(50, 20, 100, 20);

        //将考勤日期的标签添加到窗体内
        jf.add(dataJLabel);

        //开始时间
        JLabel startTimeJLabel = new JLabel("开始时间");
        //设置位置和大小
        startTimeJLabel.setBounds(50, 70, 100, 20);
        //将考勤日期的标签添加到窗体内
        jf.add(startTimeJLabel);


        //开始时间文本框
        JTextField startTimeTextFiled = new JTextField();
        //设置大小
        startTimeTextFiled.setBounds(50, 100, 100, 20);
        //把日历控件和文本框进行绑定
        dateChooser1.register(startTimeTextFiled);
        //添加到窗体
        jf.add(startTimeTextFiled);


        //结束时间
        JLabel endTimeJLabel = new JLabel("结束时间");
        //设置位置和大小
        endTimeJLabel.setBounds(250, 70, 100, 20);
        //将考勤日期的标签添加到窗体内
        jf.add(endTimeJLabel);


        //结束时间文本框
        JTextField endTimeTextFiled = new JTextField();
        //设置大小
        endTimeTextFiled.setBounds(250, 100, 100, 20);

        //把日历控件和文本框进行绑定
        dateChooser2.register(endTimeTextFiled);

        //添加到窗体
        jf.add(endTimeTextFiled);


        //确定按钮
        JButton button = new JButton("确定");
        //设置大小
        button.setBounds(250, 180, 60, 20);
        //添加到窗体
        jf.add(button);

        //给按钮添加点击事件
        button.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                //获取到输入框内的日期字符创
                String strStartTime = startTimeTextFiled.getText();
                String endStartTime = endTimeTextFiled.getText();

                //创建日期格式化对象
                SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");//注意这一定要跟开始于结束时间框内的数据格式一样,否则报错
                //对获取到的 String进行解释
                try {
                    Date start = sdf.parse(strStartTime);
                    Date end = sdf.parse(endStartTime);

                    //用弹框显示,解析后的时间
                    JOptionPane.showMessageDialog(jf, start + "\n" + end);

                    //对开始与结束时间框内的日期字符串进行清空
                    startTimeTextFiled.setText("");
                    endTimeTextFiled.setText("");
                } catch (ParseException ex) {
                    throw new RuntimeException(ex);
                }
            }
        });

        //设置窗体显示
        jf.setVisible(true);
    }
}
